Skip to content

workspace,ci: remove the os_input feature (make it unconditional) - #14902

Merged
itamar-starkware merged 1 commit into
mainfrom
remove-os-input-feature
Aug 5, 2026
Merged

workspace,ci: remove the os_input feature (make it unconditional)#14902
itamar-starkware merged 1 commit into
mainfrom
remove-os-input-feature

Conversation

@itamar-starkware

Copy link
Copy Markdown
Contributor

No description provided.

@cursor

cursor Bot commented Aug 1, 2026

Copy link
Copy Markdown

PR Summary

Medium Risk
Touches default commit/storage/consensus behavior and enlarges the always-on dependency graph; logic is mostly un-gating existing paths rather than new algorithms, but any build that previously omitted os_input now runs the full witness pipeline.

Overview
Makes OS-input support the default build by deleting the workspace-wide os_input feature and all #[cfg(feature = "os_input")] branches, instead of requiring --features os_input to get witness collection and storage.

The batcher → committer → storage path always exposes accessed keys, initial_reads, compressed state commitment infos, and ReadPathsAndCommitBlock (with CommitBlock when no keys are stored). Storage tables for accessed_keys and state_commitment_infos are always present; revert logic always clears them. Consensus / cende always attaches recent_state_commitment_infos and initial_reads to blobs and runs retrospective commitment-infos checks against the recorder.

Build/ops: optional deps (blockifier, starknet_committer, compression crates) become required where they were gated; the Apollo-Storage-OS-Input-CI workflow is removed. Grafana gains panels for get_state_commitment_infos and read_paths_and_commit_block; integration-test recorder mocks add get_witness_height_offset.

Reviewed by Cursor Bugbot for commit 93097e5. Bugbot is set up for automated code reviews on this repo. Configure here.

@reviewable-StarkWare

Copy link
Copy Markdown

This change is Reviewable

itamar-starkware commented Aug 1, 2026

Copy link
Copy Markdown
Contributor Author

This stack of pull requests is managed by Graphite. Learn more about stacking.

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit d52c949. Configure here.

Comment thread crates/apollo_consensus_orchestrator/src/cende/mod.rs
@itamar-starkware
itamar-starkware force-pushed the remove-os-input-feature branch from d52c949 to 00023c1 Compare August 3, 2026 08:10
@itamar-starkware

Copy link
Copy Markdown
Contributor Author

I'm blocking until the both Python and rust stacks are approved and green.

@itamar-starkware itamar-starkware left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Blobk

@itamar-starkware reviewed 65 files and all commit messages, and made 1 comment.
Reviewable status: :shipit: complete! all files reviewed, all discussions resolved (waiting on itamar-starkware).

@yoavGrs yoavGrs left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@yoavGrs made 1 comment.
Reviewable status: 65 of 66 files reviewed, 1 unresolved discussion (waiting on itamar-starkware).


a discussion (no related file):
Blocking

@yoavGrs yoavGrs left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@yoavGrs reviewed 66 files and all commit messages, and made 7 comments.
Reviewable status: all files reviewed, 8 unresolved discussions (waiting on itamar-starkware).


crates/apollo_batcher/src/commitment_manager/commitment_manager_impl.rs line 576 at r4 (raw file):

                }
                CommitterRequestLabelValue::ReadPathsAndCommitBlock => {
                    // TODO(Ariel): Add dedicated metrics for the read-paths-and-commit endpoint.

Is something already missing for the TODO?


crates/apollo_committer/src/committer.rs line 493 at r4 (raw file):

}

impl<S, ForestDB> Committer<S, ForestDB>

Merge the two impl blocks.


crates/apollo_consensus_orchestrator/src/cende/central_objects_test.rs line 1172 at r4 (raw file):

    let rust_json = serde_json::to_value(rust_obj).unwrap();

    // `recent_state_commitment_infos` and `initial_reads` are os_input-only and absent from the

Update the comment


crates/apollo_consensus_orchestrator/src/cende/mod.rs line 107 at r4 (raw file):

    parent_proposal_commitment: Option<ProposalCommitment>,
    recent_block_hashes: Vec<BlockHashAndNumber>,
    // Defaulted on (testing-only) deserialization: blobs recorded before witness production omit

I didn't expect to see it in this PR.
Why is it needed?


crates/apollo_integration_tests/src/utils.rs line 617 at r4 (raw file):

            )
            .route(
                RECORDER_GET_COMMITMENT_INFOS_HEIGHT_OFFSET_PATH,

It would be better to enable the feature in the first phase and after that delete it, but NVM.
Please explain why it's acceptable for the recorder to always return null.


crates/blockifier/src/blockifier/transaction_executor.rs line 59 at r4 (raw file):

    Collect,
    /// Skips collection, leaving `BlockExecutionSummary::initial_reads` empty. Required when the
    /// state reader serves a read-set pre os_input feature.

Update the doc


echonet/echonet_types.py line 181 at r4 (raw file):

    """
    Configuration for running the Starknet OS over each received blob, via the
    block-hash CLI binary's `os run-os-stateless` subcommand.

Does it need the transaction_serde feature?

@itamar-starkware
itamar-starkware force-pushed the remove-os-input-feature branch from ba2b09f to 9347458 Compare August 4, 2026 14:59

@itamar-starkware itamar-starkware left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@itamar-starkware made 7 comments.
Reviewable status: all files reviewed, 8 unresolved discussions (waiting on yoavGrs).


crates/apollo_batcher/src/commitment_manager/commitment_manager_impl.rs line 576 at r4 (raw file):

Previously, yoavGrs wrote…

Is something already missing for the TODO?

I removed the TODO.
commirt block latencymetric is using both commit block variant (commit block and read paths and commit block). And this is good estimation of the latency of commiting block.

The TODO suggested separating the latency for each varient and it will create jumps in the latencies when syncing.


crates/apollo_committer/src/committer.rs line 493 at r4 (raw file):

Previously, yoavGrs wrote…

Merge the two impl blocks.

Done.


crates/apollo_consensus_orchestrator/src/cende/central_objects_test.rs line 1172 at r4 (raw file):

Previously, yoavGrs wrote…

Update the comment

Done.


crates/apollo_consensus_orchestrator/src/cende/mod.rs line 107 at r4 (raw file):

Previously, yoavGrs wrote…

I didn't expect to see it in this PR.
Why is it needed?

It's a hack that enable central_systest_blobs to store blobs in GCP without witnesses and initial reads.
This way we avoid merging 14910 PR (which add witnesses and initial read to the blobs)
This attributes will be deleted on the 14910 PR.

Another point on this one - since central_systest_blobs are sent without the witnesses and initial reads then we can bump their pin commit without code adjustments on this side.

It's ugly, but give us the ability to divide the real functionality and testing PRs.


crates/apollo_integration_tests/src/utils.rs line 617 at r4 (raw file):

Previously, yoavGrs wrote…

It would be better to enable the feature in the first phase and after that delete it, but NVM.
Please explain why it's acceptable for the recorder to always return null.

It will always send the last 10 witnesses he has.
It will be fixed on integration_tests PRs.


crates/blockifier/src/blockifier/transaction_executor.rs line 59 at r4 (raw file):

Previously, yoavGrs wrote…

Update the doc

Done.


echonet/echonet_types.py line 181 at r4 (raw file):

Previously, yoavGrs wrote…

Does it need the transaction_serde feature?

Yes it's needed, but not as a build flag.
the CLI unconditionally depends on starknet_os with deserialize features and then he pulls transaction_serde from blockifier.

So a plain cargo build -p starknet_committer_and_os_cli is working.

@yoavGrs yoavGrs left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@yoavGrs reviewed 5 files and all commit messages, made 1 comment, and resolved 6 discussions.
Reviewable status: all files reviewed, 2 unresolved discussions (waiting on itamar-starkware).


crates/apollo_consensus_orchestrator/src/cende/mod.rs line 107 at r4 (raw file):

Previously, itamar-starkware wrote…

It's a hack that enable central_systest_blobs to store blobs in GCP without witnesses and initial reads.
This way we avoid merging 14910 PR (which add witnesses and initial read to the blobs)
This attributes will be deleted on the 14910 PR.

Another point on this one - since central_systest_blobs are sent without the witnesses and initial reads then we can bump their pin commit without code adjustments on this side.

It's ugly, but give us the ability to divide the real functionality and testing PRs.

Okay, because it's very temporary.

@yoavGrs yoavGrs left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@yoavGrs resolved 1 discussion.
Reviewable status: 65 of 66 files reviewed, 1 unresolved discussion (waiting on itamar-starkware).

@yoavGrs yoavGrs left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@yoavGrs reviewed 1 file and all commit messages.
Reviewable status: all files reviewed, 1 unresolved discussion (waiting on itamar-starkware).

@itamar-starkware

Copy link
Copy Markdown
Contributor Author

@itamar-starkware

Copy link
Copy Markdown
Contributor Author
Previously, yoavGrs wrote…

Blocking

CI is green

@yoavGrs yoavGrs left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@yoavGrs resolved 1 discussion.
Reviewable status: all files reviewed, 1 unresolved discussion.

@itamar-starkware itamar-starkware left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

:lgtm:

@itamar-starkware made 1 comment and resolved 1 discussion.
Reviewable status: :shipit: complete! all files reviewed, all discussions resolved (waiting on itamar-starkware).

@itamar-starkware
itamar-starkware added this pull request to the merge queue Aug 5, 2026
Merged via the queue into main with commit 16e5ac4 Aug 5, 2026
57 of 61 checks passed

Copy link
Copy Markdown
Contributor

Security scan complete — no issues detected.


Generated by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants